package com.ctbu.entity;

import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.excel.annotation.ExcelTarget;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * <p>
 * 金融衍生品合约信息表，包含合约ID、产品ID、用户ID、起始日期、结束日期、备注、合约单位、当前价格和约定价格等信息
 * </p>
 *
 * @author tanyan
 * @since 2024年06月27日
 */
@Getter
@Setter
@Accessors(chain = true)
@ExcelTarget("financial_contracts")
@TableName("financial_contracts")
public class FinancialContracts implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 唯一标识每个合约的ID，自动递增
     */
    @TableId(value = "contract_id", type = IdType.AUTO)
    @Excel(name="合约id")
    private Integer contractId;

    /**
     * 关联的衍生品产品ID
     */
    @TableField("product_id")
    @Excel(name="衍生品id")
    private Integer productId;

    /**
     * 添加临时字段,数据库中没有但是业务中需要使用
     */
    @TableField(exist = false)
    private  FinancialProduct financialProduct;

    /**
     * 用户ID
     */
    @TableField("user_id")
    @Excel(name="用户id")
    private Integer userId;

    /**
     * 添加临时字段,数据库中没有但是业务中需要使用
     */
    @TableField(exist = false)
    private Users users;
    /**
     * 合约创建时间
     */
    @TableField("create_time")
    @Excel(name="合约创建时间")
    private String createTime;
    /**
     * 售卖时间
     */
    @TableField("sale_time")
    @Excel(name="售卖时间")
    private String saleTime;
    /**
     * 数量
     */
    @TableField("count")
    @Excel(name="数量")
    private Integer count;
    /**
     * 价格
     */
    @TableField("product_price")
    @Excel(name="价格")
    private BigDecimal productPrice;

}
